// 表单校验模块，用来校验提交的表单数据的合法性

const joi = require('joi')
/*
 *  string()  值必须是字符串类型
 *  alphanum()  值只能是包含 a-z A-Z 0-9 的字符串
 *  min(length) 最小长度
 *  max(length) 最大长度
 *  required()  值必填，不能为underfined   
 *  pattern(正则表达式) 值必须符合正则校验
*/

//用户名的验证规则
const username = joi.string().alphanum().min(1).max(10).required()

// 密码的校验规则
const password = joi.string().pattern(/^[\S]{6,12}$/).required()

//导出校验规则对象--登录
exports.reg_login_schema = {
    body:{
        username,
        password
    }
}



//定义id的验证规则
const id = joi.number().integer().min(1).required()

//定义nickname的验证规则
const nickname = joi.string().required()

//定义email的验证规则
const email = joi.string().email().required()

//导出校验规则对象--更新用户基本信息
exports.update_userinfo_schema = {
    body:{
        id,
        nickname,
        email
    }
}

//导出校验规则对象--重置密码
exports.update_password_schema = {
    body:{
        oldPwd:password,
        newPwd:joi.not(joi.ref('oldPwd')).concat(password)
    }
}